package com.shujia.wyh.day03;

/*
    数组：java提供的一个大小空间固定，长度固定，对于同一个数组而言，存储的数据元素类型一致的容器。
    如何定义一个数组：
        格式1：数据类型[] 数组的名字
        格式2：数据类型 数组名[]

    如何对数组进行初始化：其实就是在内存中开辟一块真正连续的空间，然后把地址值赋值给变量名。
    JVM虚拟机将java程序运行时的内存划分了5个区域：
    1、栈（方法调用，局部变量的创建）
        局部变量：在方法定义上或者方法内部中定义的变量，称之为局部变量
    2、堆（只要在代码看到new关键，new出来的东西一律在堆内存中）
    3、方法区（今天不讲解，说到面向对象的时候加上）
    4、本地方法区（和系统相关）
    5、寄存器（和CPU使用相关）

    java对数组有两种初始化的方式：
        1、动态初始化
            语句定义格式：数据类型[] 数组名 = new 数据类型[m];
            m指的是数组的容量大小，也就是真实要存储元素的个数
            举例：创建一个可以存储3个int类型元素的数组
            int[] arr = new int[3];
        2、静态初始化


 */
public class ArrayDemo1 {
    public static void main(String[] args) {

        //定义一个存储int类型的数组
//        int[] arr;
//        System.out.println(arr);  //可能尚未初始化变量arr
        int[] arr = new int[3];
        System.out.println(arr);  //[I@4554617c   在内存中地址值是以16进制存在的
        //取出数组对应位置上的元素值
        //语句定义格式：数组名[索引]
        System.out.println(arr[0]);
        System.out.println(arr[1]);
        System.out.println(arr[2]);
        //我们创建数组的目的是为了将我们自己的数据存储进去
        //11，22，33，44，55
        int[] arr2 = new int[5];
        arr2[0] = 11;
        arr2[1] = 22;
        arr2[2] = 33;
        arr2[3] = 44;
        arr2[4] = 55;

        System.out.println(arr2[0]);
        System.out.println(arr2[1]);
        System.out.println(arr2[2]);
        System.out.println(arr2[3]);
        System.out.println(arr2[4]);


    }
}
